package exemplos.exemplo02;

import java.util.List;

import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

@ManagedBean(name="cartMB")
@SessionScoped
public class CartMB {
	@EJB
	private Cart cart;

	private String id;
	private String responsavel;
	private String nomeDoLivro;
	private String nomeDoLivroARemover;
	private String mensagem;
	private int toShow;

	public Cart getCart() {
		return cart;
	}

	public void setCart(Cart cart) {
		this.cart = cart;
	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getResponsavel() {
		return responsavel;
	}

	public void setResponsavel(String responsavel) {
		this.responsavel = responsavel;
	}

	public String getNomeDoLivro() {
		return nomeDoLivro;
	}

	public void setNomeDoLivro(String nomeDoLivro) {
		this.nomeDoLivro = nomeDoLivro;
	}

	public String getNomeDoLivroARemover() {
		return nomeDoLivroARemover;
	}

	public void setNomeDoLivroARemover(String nomeDoLivroARemover) {
		this.nomeDoLivroARemover = nomeDoLivroARemover;
	}
	public String getMensagem() {
		this.toShow++;
		return mensagem;
	}

	public void setMensagem(String mensagem) {
		this.mensagem = mensagem;
		this.toShow = 1;
	}

	public boolean isToShow() {
		return this.toShow == 1;
	}

	public String adicionaLivro() {
		if (nomeDoLivro.equals("")) {
			this.setMensagem("Título do livro não pode ser vazio!");
		} else if (cart.getContents().contains(nomeDoLivro)) {
			this.setMensagem("Este livro já foi adicionado!");
		} else {
			cart.addBook(nomeDoLivro);
			this.setMensagem("Livro cadastrado com sucesso!");	
		}
		return "gerenciarCarrinho.jsp";
	}

	public String removeLivro() {
		this.setMensagem("Livro removido com sucesso!");
		try {
			cart.removeBook(nomeDoLivroARemover);
		} catch (BookException e) {
			this.setMensagem(e.getMessage());
		}
		return "gerenciarCarrinho.jsp";
	}

	public List<String> getCarrinho() {
		return cart.getContents();
	}

	public boolean isListaNaoVazia() {
		return !cart.getContents().isEmpty();
	}

	public String inicializa() {
		try {
			cart.initialize(responsavel, id);
		} catch (BookException e) {
			this.setMensagem(e.getMessage());
			return "index.jsp";
		}
		return "gerenciaCarrinho.jsp";
	}
}
